package cn.iocoder.yudao.module.system.dal.mysql.roleweixinmenu;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.dal.dataobject.roleweixinmenu.RoleWeixinMenuDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.system.controller.admin.roleweixinmenu.vo.*;
import org.apache.ibatis.annotations.Param;

/**
 * 微信菜单和角色关联 Mapper
 *
 * @author 管理员
 */
@Mapper
public interface RoleWeixinMenuMapper extends BaseMapperX<RoleWeixinMenuDO> {

    default PageResult<RoleWeixinMenuDO> selectPage(RoleWeixinMenuPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<RoleWeixinMenuDO>()
                .eqIfPresent(RoleWeixinMenuDO::getRoleId, reqVO.getRoleId())
                .eqIfPresent(RoleWeixinMenuDO::getWeixinMenuId, reqVO.getWeixinMenuId())
                .betweenIfPresent(RoleWeixinMenuDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(RoleWeixinMenuDO::getId));
    }

    default List<RoleWeixinMenuDO> selectList(RoleWeixinMenuDO reqVO) {
        return selectList( new LambdaQueryWrapperX<RoleWeixinMenuDO>()
                .eqIfPresent(RoleWeixinMenuDO::getRoleId, reqVO.getRoleId())
                .eqIfPresent(RoleWeixinMenuDO::getWeixinMenuId, reqVO.getWeixinMenuId())
                .orderByDesc(RoleWeixinMenuDO::getId));
    }

    /**
     * 根据ID查询小程序的权限
     * @param userId
     * @return
     */
    List<String> selectPermissByWx(@Param("userId") Long userId);


    int deleteByRoleId(@Param("roleId") Long roleId);

}